onQuantityInput(e) {
    const { id } = e.currentTarget.dataset; // 获取商品 ID
    let value = parseInt(e.detail.value, 10); // 获取输入的数量

    // 校验输入的数量
    if (isNaN(value) || value < 0) {
        value = 0; // 如果输入无效，重置为 0
    }

    // 获取商品信息
    const good = this.data.goods.find(item => item._id === id);
    if (!good) {
        wx.showToast({
            title: '商品不存在',
            icon: 'none',
        });
        return;
    }

    // 检查库存
    if (value > good.count) {
        wx.showToast({
            title: '库存不足',
            icon: 'none',
        });
        value = good.count; // 限制为最大库存
    }

    // 更新购物车数据
    const cartData = { ...this.data.cartData };
    if (value === 0) {
        delete cartData[id]; // 如果数量为 0，移除商品
    } else {
        cartData[id] = value; // 更新数量
    }

    // 更新购物车数组并重新计算总价
    this.cartToArray(cartData, id);
}


async cartToArray(cartData, id) {
    const cartObjects = [];
    for (const [key, count] of Object.entries(cartData)) {
        const good = this.data.goods.find(item => item._id === key);
        if (good) {
            cartObjects.push({
                ...good,
                count,
            });
        }
    }

    this.setData({
        cartData,
        cartObjects,
    });

    this.countCart(); // 重新计算购物车总价和数量
}